<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<title>索引一些文档 | ElasticSearch 7.7 权威指南中文版</title>
	<meta name="keywords" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <meta name="description" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
	<link rel="stylesheet" type="text/css" href="../static/styles.css" />
	<script>
	var _link = 'getting-started-index.html';
    </script>
</head>
<body>
<div class="main-container">
    <section id="content">
        <div class="content-wrapper">
            <section id="guide" lang="zh_cn">
                <div class="container">
                    <div class="row">
                        <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                            <div style="color:gray; word-break: break-all; font-size:12px;">原英文版地址: <a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.7/getting-started-index.html" rel="nofollow" target="_blank">https://www.elastic.co/guide/en/elasticsearch/reference/7.7/getting-started-index.html</a>, 原文档版权归 www.elastic.co 所有<br/>本地英文版地址: <a href="../en/getting-started-index.html" rel="nofollow" target="_blank">../en/getting-started-index.html</a></div>
                        <!-- start body -->
                  <div class="page_header">
<strong>重要</strong>: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html" rel="nofollow">当前版本文档</a>。
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch 权威指南 [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="getting-started.html">开始使用 Elasticsearch</a></span>
»
<span class="breadcrumb-node">索引一些文档</span>
</div>
<div class="navheader">
<span class="prev">
<a href="getting-started-install.html">« 安装并运行 Elasticsearch</a>
</span>
<span class="next">
<a href="getting-started-search.html">开始搜索 »</a>
</span>
</div>
<div class="chapter">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="getting-started-index"></a>索引一些文档
</h2>
</div></div></div>
<p>
一旦集群启动并运行，就可以索引一些数据了。

Elasticsearch 有各种各样的输入选项，但最终它们都做了同样的事情：将 JSON 文档放入 Elasticsearch 索引。
</p>
<p>
您可以直接通过一个简单的 PUT 请求来完成这个任务，该请求指定要添加文档的索引名称、文档的唯一ID以及请求正文中的一个或多个 <code class="literal">"field": "value"</code> 对：
</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">PUT /customer/_doc/1
{
  "name": "John Doe"
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/2.console"></div>
<p>
这个请求会自动创建索引 <code class="literal">customer</code> (如果该索引不存在)，添加 ID 为 <code class="literal">1</code> 的新文档，并存储和索引 <code class="literal">name</code> 字段。
</p>
<p>
因为这是一个新文档，响应显示操作的结果是版本号为 1 的文档被创建了：
</p>
<div class="pre_wrapper lang-console-result">
<pre class="programlisting prettyprint lang-console-result">{
  "_index" : "customer",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 2,
    "failed" : 0
  },
  "_seq_no" : 26,
  "_primary_term" : 4
}</pre>
</div>
<p>
这个新的文档可以立即从集群中的任意节点获取。

可以使用一个指定了它的文档 ID 的 GET 请求来检索它：
</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET /customer/_doc/1</pre>
</div>
<div class="console_widget" data-snippet="snippets/3.console"></div>
<p>
响应显示找到了具有指定 ID 的文档，并显示已索引的原始文档的源字段 (<code class="literal">_source</code>)。
</p>
<div class="pre_wrapper lang-console-result">
<pre class="programlisting prettyprint lang-console-result">{
  "_index" : "customer",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 1,
  "_seq_no" : 26,
  "_primary_term" : 4,
  "found" : true,
  "_source" : {
    "name": "John Doe"
  }
}</pre>
</div>
<h3>
<a id="getting-started-batch-processing"></a>批量索引文档
</h3>
<p>
如果有许多文档要索引，可以使用 <a href="docs-bulk.html" class="ulink" target="_top">bulk API</a> 批量提交。

使用批量批处理文档操作比单独提交请求要快得多，因为它将请求的网络往返次数降到最低。
</p>
<p>
最佳的批次大小取决于多个因素：

文档大小和复杂度，索引和搜索负载，以及集群可用的资源。

一个很好的起点是批处理 1,000 至 5,000 个文档，且总负载<span style="color:#666;">(总文档大小)</span>在 5MB 到 15 MB 之间。

然后，你可以尝试找到最佳点。
</p>
<p>
在开始搜索和分析之前，你需要获取一些数据并导入到 Elasticsearch 中去：
</p>
<div class="olist orderedlist">
<ol class="orderedlist">
<li class="listitem">
<p>
下载演示数据 <a href="https://github.com/elastic/elasticsearch/blob/master/docs/src/test/resources/accounts.json?raw=true" class="ulink" target="_top"><code class="literal">accounts.json</code></a>。

这个随机生成的数据集中的文档使用以下信息表示用户帐户：
</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js">{
    "account_number": 0,
    "balance": 16623,
    "firstname": "Bradshaw",
    "lastname": "Mckenzie",
    "age": 29,
    "gender": "F",
    "address": "244 Columbus Place",
    "employer": "Euron",
    "email": "bradshawmckenzie@euron.com",
    "city": "Hobucken",
    "state": "CO"
}</pre>
</div>
</li>
<li class="listitem">
<p>
用下面的 <code class="literal">_bulk</code> 请求来将用户账户数据索引到名称为 <code class="literal">bank</code> 的索引中。
</p>
<div class="pre_wrapper lang-sh">
<pre class="programlisting prettyprint lang-sh">curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_bulk?pretty&amp;refresh" --data-binary "@accounts.json"
curl "localhost:9200/_cat/indices?v"</pre>
</div>
<p>
响应信息显示有 1,000 个文档索引成功。
</p>
<div class="pre_wrapper lang-txt">
<pre class="programlisting prettyprint lang-txt">health status index uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   bank  l7sSYV2cQXmu6_4rJWVIww   5   1       1000            0    128.6kb        128.6kb</pre>
</div>
</li>
</ol>
</div>
</div>
<div class="navfooter">
<span class="prev">
<a href="getting-started-install.html">« 安装并运行 Elasticsearch</a>
</span>
<span class="next">
<a href="getting-started-search.html">开始搜索 »</a>
</span>
</div>
</div>

                  <!-- end body -->
                        </div>
                        <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                        
                        </div>
                    </div>
                </div>
            </section>
        </div>
    </section>
</div>
<script src="../static/cn.js"></script>
</body>
</html>